package com.ruoyi.ams.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.ams.domain.vo.AssetUnlockLog;
import com.ruoyi.ams.domain.vo.TreeSelect;
import com.ruoyi.ams.domain.vo.WxTreeSelect;
import com.ruoyi.common.core.domain.model.AmsOwnAddress;

import java.util.HashMap;
import java.util.List;

/**
 * 资产所有方区域信息Service接口
 * 
 * @author yfkj
 * @date 2021-10-15
 */
public interface IAmsOwnAddressService  extends IService<AmsOwnAddress>
{
    /**
     * 查询资产所有方区域信息
     * 
     * @param addressId 资产所有方区域信息主键
     * @return 资产所有方区域信息
     */
    public AmsOwnAddress selectAmsOwnAddressByAddressId(Long addressId);

    /**
     * 查询资产所有方区域信息列表
     * 
     * @param amsOwnAddress 资产所有方区域信息
     * @return 资产所有方区域信息集合
     */
    public List<AmsOwnAddress> selectAmsOwnAddressList(AmsOwnAddress amsOwnAddress);

    /**
     * 新增资产所有方区域信息
     * 
     * @param amsOwnAddress 资产所有方区域信息
     * @return 结果
     */
    public int insertAmsOwnAddress(AmsOwnAddress amsOwnAddress);

    /**
     * 修改资产所有方区域信息
     * 
     * @param amsOwnAddress 资产所有方区域信息
     * @return 结果
     */
    public int updateAmsOwnAddress(AmsOwnAddress amsOwnAddress);

    /**
     * 批量删除资产所有方区域信息
     * 
     * @param addressIds 需要删除的资产所有方区域信息主键集合
     * @return 结果
     */
    public int deleteAmsOwnAddressByAddressIds(Long[] addressIds);

    /**
     * 删除资产所有方区域信息信息
     * 
     * @param addressId 资产所有方区域信息主键
     * @return 结果
     */
    public int deleteAmsOwnAddressByAddressId(Long addressId);

    List<TreeSelect> buildTreeSelect(List<AmsOwnAddress> list);

    List<WxTreeSelect> buildWxTreeSelect(List<AmsOwnAddress> list);

    List<AmsOwnAddress> buildTree(List<AmsOwnAddress> list);

    HashMap<Long, AssetUnlockLog> getUnlockLogs(String addressName, List<Long> deptIds);
}
